Typical computer systems, especially computer systems using graphical user interfaces (“GUIs”), are optimized for accepting user input from one or more discrete input devices, such as a keyboard for entering text, and a pointing device, such as a mouse with one or more buttons, for operating the user interface. An example of such a GUI is the user interface for the Windows® computer operating system (available from Microsoft Corporation of Redmond, Wash.). The ubiquitous keyboard and mouse interface provides for fast creation and modification of documents, spreadsheets, database fields, drawings, photos, e-mails, web pages, and the like.
Recently, however, pen-based computing systems, such as tablet PCs and the like, have been increasing in popularity. In pen-based computing systems, user input advantageously may be introduced using an electronic “pen” or stylus (e.g., akin to writing with a pen or pencil on a piece of paper). Indeed, in at least some pen-based computing systems, all user input is capable of being entered and manipulated using an electronic pen input device, and the user interface is fully controllable using only the electronic pen.
As pen-based computing systems become more popular, users are increasingly entering more data in the form of electronic ink. In many instances, users may wish to convert the original electronic ink data to machine-generated text, i.e., text suitable for storage, use, and manipulation by conventional word processing programs and other application programs. Handwriting recognition programs and other electronic ink analysis programs are available to enable more versatile use and availability of electronic ink data.
Analyzing input electronic ink data, e.g., for handwriting recognition purposes or the like, can take considerable computer processing time, particularly when a large volume of data must be analyzed (e.g., a long or complex document). Accordingly, in at least some instances, in order to minimize or reduce the time that an electronic document is unavailable to an end user (e.g., for data entry purposes), this type of recognition or other analysis may take place in a background thread, e.g., on a copy of the electronic document, so that the original electronic document in the application program may remain available to the user for further data entry. Moreover, in at least some instances, the background analysis (e.g., the handwriting recognition or the like) is repeated periodically and incrementally on copies of the electronic document, while the user continues working with the original electronic document in the application program, to minimize or reduce the volume of unprocessed input data at any given time. Through this periodic and incremental analysis, the analysis builds on and/or starts from previously obtained analysis results.
In order to perform processing on copies of electronic documents, e.g., in a background thread and incrementally, as generally described above, data must be periodically moved from the copy on which the analysis is performed to the original electronic document in the application program on which the user is working. In some instances, data associated with or maintained by the original application program document can be lost during these data moving operations. Additionally, users can experience processing delays when the original electronic document is replaced by the copy on which an analysis has been performed, particularly when the electronic document is long or complex and/or when all or a large portion of the electronic document must be written into the application program. Such data loss and processing delays can be frustrating to users, and they can pose barriers to adoption of pen-based computing systems.
Accordingly, there is a need in the art for systems, methods, and computer-readable media that enable rapid and accurate evaluation of one electronic document or data structure as compared to another so as to preserve and maintain data associated with the original electronic document or data structure and/or to reduce the processing time associated with rewriting and/or copying data from one document or data structure to the other.